Unique device identification among large populations of homogenous devices

ABSTRACT

A digital fingerprint identifying a device includes characteristics of a user of the device in addition to characteristics of the device itself. The personal characteristics used to form the digital fingerprint of the device are those that are likely to not change over time or to change in predictable ways. The personal characteristics are gathered from sources external to the device, such as profiles of the user stored remotely at a social networking site. Each constituent characteristic of a digital fingerprint is associated with extraction logic and comparison logic.

This application claim priority to U.S. Provisional Application No.61/734,455, filed Dec. 7, 2012, which is fully incorporated herein byreference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer systems and, moreparticularly, to methods of and systems for uniquely identifyingcomputing devices. More specifically, the invention relates to uniquelyidentifying a computing device by combining device data with personalinformation of a user of the computing device to form a personalizeddevice fingerprint.

2. Description of the Related Art

Device identification through digital fingerprints has proven to beinvaluable in recent years to such technologies as security and digitalrights management. In security, authentication of a person can berestricted to a limited number of previously authorized devices that arerecognized by their digital fingerprints. In digital rights management,use of copyrighted or otherwise proprietary subject matter can besimilarly restricted to a limited number of previously authorizeddevices that are recognized by their digital fingerprints.

Digital fingerprints are particularly useful in uniquely identifyingcomputing devices that are historically known as “IBM PC compatible”.Such devices have an open architecture in which various computercomponents are easily interchangeable with compatible but differentcomponents. There are two primary effects of such an open architecturethat facilitate device identification through digital fingerprints.

The first facilitating effect is diversity of device components. Sincenumerous components of IBM PC compatible devices are interchangeablewith comparable but different components, generation of a digitalfingerprint from data associated with the respective components of thedevice is more likely to result in a unique digital fingerprint.

The second facilitating effect is discoverability of details of thevarious components of IBM PC compatible devices. Since the particularcombination of components that make up a given device can vary widelyand can come from different manufacturers, the components and theoperating system of the device cooperate to provide access to detailedinformation about the components. Such information can include serialnumbers, firmware version and revision numbers, model numbers, etc. Thisdetailed information can be used to distinguish identical componentsfrom the same manufacturer and therefore improves uniqueness of digitalfingerprints of such devices.

Laptop computing devices evolved from desktop computing devices such asIBM PC compatible devices and share much of the architecture of desktopcomputing devices, albeit in shrunken form. Accordingly, while users aremuch less likely to replace graphics circuitry in a laptop device andcomponents therefore vary less in laptop devices, laptop devices stillprovide enough detailed and unique information about the components ofthe laptop device to ensure uniqueness of digital fingerprints.

However, the world of computing devices is rapidly changing. Smartphones that fit in one's pocket now include processing resources thatwere state of the art just a few years ago. In addition, smart phonesare growing wildly in popularity. Unlike tablet computing devices of adecade ago, which were based on laptop device architectures, tabletdevices available today are essentially larger versions of smart phones.

Smart phones are much more homogeneous than older devices. To make smartphones so small, the components of smart phones are much moreintegrated, including more and more functions within each integratedcircuit (IC) chip. For example, while a desktop computing device caninclude graphics cards and networking cards that are separate from theCPU, smart phones typically have integrated graphics and networkingcircuitry within the CPU. Furthermore, while desktop and laptop devicestypically include hard drives, which are devices rich with unique anddetailed information about themselves, smart phones often includenon-volatile solid-state memory, such as flash memory, integrated withinthe CPU or on the same circuit board as the CPU. Flash memory rarelyincludes information about the flash memory, such as the manufacturer,model number, etc.

Since these components of smart phones are generally tightly integratedand not replaceable, the amount and variety of unique data within asmart phone that can be used to generate a unique digital fingerprint isgreatly reduced relative to older device architectures. In addition,since it is not expected that smart phone components will ever bereplaced, there is less support for access to detailed information aboutthe components of smart phones even if such information exists.

Accordingly, it is much more difficult to assure that digitalfingerprints of smart phones and similar portable personal computingdevices such as tablet devices are unique. What is needed is a way touniquely identify individual devices in large populations of homogeneousdevices.

SUMMARY OF THE INVENTION

In accordance with the present invention, a digital fingerprintidentifying a device includes characteristics of a user of the device.Accordingly, the device can be distinguished from other computingdevices that are not readily distinguished by hardware characteristicsalone. In effect, characteristics of respective users of homogeneousdevices help distinguish the devices from one another.

Digital fingerprints are best when they are unique, stable, anddifficult to spoof. Accordingly, the personal characteristics used toform the digital fingerprint of the device are those that are likely notto change over time or to change in predictable ways. Examples of suchpersonal characteristics are personal characteristics of the user thatcan be gathered from publicly available information from socialnetworking sites, such as first and last name, city of residence,employer, relationship status, number of friends, age, etc.

In addition, the personal characteristics are gathered from sourcesexternal to the device, such as profiles of the user stored remotely ata social networking site. As a result, it is difficult for one person tospoof characteristics of another person without also having the abilityto modify the profile of the other person that is maintained externallyto the device.

Each constituent characteristic of a digital fingerprint is associatedwith extraction logic and comparison logic. The extraction logic of agiven characteristic specifies the manner in which the substantive dataof the characteristic is retrieved for incorporation into a digitalfingerprint. To retrieve a characteristic, such as the number of friendsof the user at a social networking site, the extraction logic canspecify (i) the manner in which a user identifier for the socialnetworking site is extracted from browser personal information such asbrowsing history, bookmarks, form filling data, and user identifiers;(ii) the manner in which a publicly available profile associated withthe extracted user identifier is retrieved; and (iii) the manner inwhich the characteristic is parsed from the retrieved profile.

While it is preferred that characteristics used to form digitalfingerprints are stable and do not change over time, characteristics ofa human user can and do change over time. The personal characteristicsthat are selected for use in forming digital fingerprints are those thatare relatively stable and change primarily in predictable, expectedways. For example, a person's first name generally does not change, aperson's last name changes rarely, a person's age increases by one eachyear, and a person's number of friends tends to only increase, and toincrease at a modest rate. The comparison logic for each of thesecharacteristics considers the way in which such characteristics can beexpected to change over time and estimates a likelihood that two digitalfingerprints identify one and the same device according to how wellchanges in each characteristic over time follows the expected pattern.

BRIEF DESCRIPTION OF THE DRAWINGS

Other systems, methods, features and advantages of the invention will beor will become apparent to one with skill in the art upon examination ofthe following figures and detailed description. It is intended that allsuch additional systems, methods, features and advantages be includedwithin this description, be within the scope of the invention, and beprotected by the accompanying claims. Component parts shown in thedrawings are not necessarily to scale, and may be exaggerated to betterillustrate the important features of the invention. In the drawings,like reference numerals may designate like parts throughout thedifferent views, wherein:

FIG. 1 is a diagram showing a computing device and a server thatcooperate to identify the device in accordance with one embodiment ofthe present invention.

FIG. 2 is a transaction flow diagram illustrating the manner in whichthe device and server computer of FIG. 1 cooperate to identify thedevice.

FIG. 3 is a block diagram of a digital fingerprint specification used bythe server to manage generation of the digital fingerprint of the deviceof FIG. 1 and comparison of the digital fingerprint to another digitalfingerprint.

FIGS. 4 and 5 are each a logic flow diagram of an illustrative exampleof extraction logic by which a part of a digital fingerprint isgenerated.

FIG. 6 is a logic flow diagram illustrating the manner in which thedevice generates its digital fingerprint in a step of the transactionflow diagram of FIG. 2 in greater detail.

FIG. 7 is a logic flow diagram illustrating the manner in which theserver compares the digital fingerprint to another digital fingerprintin a step of the transaction flow diagram of FIG. 2 in greater detail.

FIGS. 8 and 9 are each a logic flow diagram of an illustrative exampleof comparison logic by which a part of a digital fingerprint is comparedto a corresponding part of another digital fingerprint.

FIG. 10 is a block diagram showing in greater detail the server of FIG.1.

FIG. 11 is a block diagram showing in greater detail the device of FIG.1.

DETAILED DESCRIPTION

In accordance with the present invention, a computing device 102(FIG. 1) is identified by a digital fingerprint incorporating acombination of hardware characteristics of device 102 and personalcharacteristics of a user of device 102. Accordingly, device 102 can bedistinguished from other computing devices that are not readilydistinguished by hardware characteristics alone.

Digital fingerprints are best when they are unique, stable, anddifficult to spoof. Accordingly, the personal characteristics used toform the digital fingerprint of device 102 are those that are likely tonot change over time or to change in predictable ways. In addition, thepersonal characteristics are gathered from sources external to device102. Examples of such personal characteristics are personalcharacteristics of the user that can be gathered from publicly availableinformation from social networking sites, such as first and last name,city of residence, employer, relationship status, number of friends,age, etc.

Device 102 can be any of a number of types of networked computingdevices, including smart phones, tablets, netbook computers, laptopcomputers, and desktop computers. Device 102 communicates with a server106 through a computer network 104, which is the Internet in thisillustrative embodiment. Server 106 is configured to recognize deviceswith which server 106 has previously interacted. Such recognition can bepart of an authentication process or to provide customized content basedon previous interaction with recognized devices, as illustrativeexamples.

Transaction flow diagram 200 (FIG. 2) represents the manner in whichdevice 102 identifies itself to server 106 with a digital fingerprintand server 106 compares the digital fingerprint to digital fingerprintsof known devices in accordance with the present invention.

In step 202, device 102 sends a request for a web page to servercomputer 106. The request can be in the form of a URL specified by theuser of device 102 using a web browser 1120 (FIG. 11) executing indevice 102 and conventional user interface techniques involving physicalmanipulation of user input devices 1108. Web browser 1120 and user inputdevices 1108 and other components of device 102 are described in greaterdetail below.

In step 204 (FIG. 2), server 106 sends the web page that is identifiedby the request received in step 202. The web page sent to device 102includes content that causes web browser 1120 (FIG. 11) of device 102 togenerate a digital fingerprint for device 102, e.g., digital fingerprint1140. In one embodiment, a web browser plug-in 1122C installed in clientdevice 102 and, invoked by web browser 1120, processes the content ofthe web page to generate the digital fingerprint. In other embodiments,the digital fingerprint of device 102 can be generated by other forms oflogic of device 102, such as software installed in device 102. Thevarious elements of device 102 and their interaction are described morecompletely below. In addition, step 206 is described more completelybelow with respect to logic flow diagram 206 (FIG. 6).

In step 208 (FIG. 2), device 102 sends the digital fingerprint that wasgenerated in step 206 to server 106.

In step 210, server 106 compares the digital fingerprint of device 102received in step 208 to digital fingerprints of known devices. Step 210is described in greater detail below in conjunction with logic flowdiagram 210 (FIG. 7).

In step 212, server 106 continues the interaction with device 102 ifdevice 102 is recognized by its digital fingerprint. Alternatively,server 106 can continue interaction with device 102 regardless ofwhether device 102 is recognized by its digital fingerprint but modifiesthe interaction with device 102 according to whether device 102 isrecognized.

As described above, device 102 generates a digital fingerprint toidentify itself in step 206 (FIG. 2), and step 206 is shown in greaterdetail as logic flow diagram 206 (FIG. 6). In this illustrativeembodiment, step 206 is performed by web browser plug-in 1122C (FIG.11).

The generation and comparison of digital fingerprints are defined by adigital fingerprint specification 300 (FIG. 3) stored in digitalfingerprint specifications 1032 (FIG. 10) of server 106. Digitalfingerprint specification 300 (FIG. 3) includes a number of digitalfingerprint elements 302, each of which defines a data element to beincluded in digital fingerprint 1140 (FIG. 11).

Each digital fingerprint element 302 (FIG. 3) includes an identifier304, extraction logic 306, and comparison logic 308. In the context ofFIG. 3, the particular element represented by digital fingerprintelement 302 is sometimes referred to as “the subject element.”

Identifier 304 identifies the subject element to enable directcomparison of corresponding elements of digital fingerprints. In analternative embodiment, elements of a digital fingerprint are arrangedin a predetermined sequence and specific elements of the digitalfingerprint are identified by their position within the sequence,obviating identifier 304.

Extraction logic 306 specifies the manner in which the subject elementis extracted by device 102 in generating the digital fingerprint. Logicflow diagrams 306A (FIG. 4) and 306B (FIG. 5) are illustrative examplesof extraction logic 306 and are described below in greater detail.

Comparison logic 308 specifies the manner in which the subject elementis compared to a corresponding element of another digital fingerprint todetermine whether digital fingerprints match one another. Logic flowdiagrams 308A (FIG. 8) and 308B (FIG. 9) are illustrative examples ofcomparison logic 308 and are described below in greater detail.

Loop step 602 (FIG. 6) and next step 610 define a loop in which webbrowser plug-in 1122C processes each of digital fingerprint elements 302(FIG. 3) according to steps 604-608. During a particular iteration ofthe loop of steps 602-610, the particular digital fingerprint element302 processed by web browser plug-in 1122C is sometimes referred to asthe subject element.

In step 604, web browser plug-in 1122C executes extraction logic 306 ofthe subject element to extract data representing the subject element.The particular manner in which web browser plug-in 1122C extracts thedata depends on the particular details of extraction logic 306. Logicflow diagram 306A (FIG. 4) is an illustrative example of extractionlogic for data regarding a hardware characteristic of device 102.

In step 402, web browser plug-in 1122C retrieves detailed informationabout a hard disk drive of device 102. For example, in an embodiment inwhich device 102 includes the known Linux operating system, web browserplug-in 1122C can retrieve detailed information about a hard disk driveby executing the command, “hdparm -I /dev/sda”. To enhance efficiency,web browser plug-in 1122C can cache the results of that command toextract data for other elements related to detailed information aboutthe hard disk drive.

In step 404, web browser plug-in 1122C parses the serial number of thehard disk drive from the detailed information retrieved in step 402.Parsing of the serial number is a straight forward process of patternrecognition, using regular expressions for example.

Logic flow diagram 306B (FIG. 5) is an illustrative example ofextraction logic for data regarding a personal characteristic of a userof device 102. In step 502, web browser plug-in 1122C retrieves a useridentifier for a social networking site from browser personalinformation 1130 (FIG. 11). Browser personal information 1130 includesvarious types of personal information stored by web browser 1120regarding browsing activity of the user of device 102. Examples includebrowsing history, form data, user identifiers and passwords, andbookmarks.

In step 504, web browser plug-in 1122C retrieves public informationabout the user from the social networking user identifier retrieved instep 502. Many social networking sites support URLs that are derivedfrom user identifiers in a deterministic manner. For example, if theuser has an account for the social networking site at http://twitter.comand the user identifier is “xyz”, a URL to a public page regarding theuser can be retrieved at http://twitter.com/#!/xyz. To enhanceefficiency, web browser plug-in 1122C can cache the retrieved web pageto extract data for other elements related to same social networkingprofile.

In step 506, web browser plug-in 1122C parses a particular item ofinformation from the web page retrieved in step 504. In thisillustrative example, the particular item of information is a number offriends the user has at the social networking site. Parsing of thenumber of friends is a straight forward process of pattern recognition,using regular expressions for example.

In step 606, web browser plug-in 1122C forms a reversible hash of thesubject element, including identifier 304 (FIG. 3) and the dataretrieved in step 604 (FIG. 6). The subject element is hashed by webbrowser plug-in 1122C to obscure the particular form and content of thedigital fingerprint during transport through wide area network 104 (FIG.1).

In step 608, web browser plug-in 1122C adds the hash created in step 606to an accumulation of element hashes. The accumulation of element hashesis the digital fingerprint sent to server 106 in step 208.

Once all of digital fingerprint elements 302 (FIG. 3) have beenprocessed by web browser plug-in 1122C according to the loop of steps602-610 (FIG. 6), processing according to logic flow diagram 206, andtherefore step 206 (FIG. 2), completes. The resulting digitalfingerprint is an accumulation of hashes that represents multiple itemsof system information of device 102 and personal information of a userof device 102. In this respect, the resulting digital fingerprintcomprises a personalized digital fingerprint.

As described above, server 106 (FIG. 1) compares the digital fingerprintof device 102 to digital fingerprints of known devices, e.g., knowndigital fingerprints 1030 (FIG. 10), in step 208 (FIG. 2). Logic flowdiagram 210 (FIG. 7) illustrates comparison of the digital fingerprintof device 102 to another digital fingerprint, sometimes referred to as“the reference digital fingerprint” in the context of logic flow diagram210.

In step 702, digital fingerprint management logic 1024 parses individualreversible hashes representing individual elements of the digitalfingerprint of device 102.

In step 704, digital fingerprint management logic 1024 initializes amatch score that represents a degree of similarity between the digitalfingerprint of device 102 and the reference digital fingerprint. In thisillustrative embodiment, digital fingerprint management logic 1024initializes the match score to a value of 1.0, indicating a perfectmatch.

Loop step 706 and next step 710 define a loop in which digitalfingerprint management logic 1024 processes each digital fingerprintelement 302 (FIG. 3) according to step 708. During each iteration of theloop of steps 706-710, the particular digital fingerprint elementprocessed by digital fingerprint management logic 1024 is sometimesreferred to as “the subject element” in the context of logic flowdiagram 210.

In step 708, digital fingerprint management logic 1024 executescomparison logic 308 (FIG. 3) of the subject element. Execution ofcomparison logic 308 adjusts the match score initialized in step 704 ina manner specified within comparison logic 308.

Logic flow diagram 308A (FIG. 8) is an illustrative example ofcomparison logic for data regarding a hardware characteristic of device102. In test step 802, digital fingerprint management logic 1024 (FIG.10) compares data representing the serial number of a hard disk drive ofdigital fingerprint 1140 (FIG. 11) to data representing the serialnumber of a hard disk drive of the reference digital fingerprint. If therespective serial numbers are not the same, processing transfers to step804 in which digital fingerprint management logic 1024 reduces the matchscore by 30%, by multiplication of the match score by 0.7, in step 804.Conversely, if the respective serial numbers are the same, digitalfingerprint management logic 1024 does not reduce the match score instep 806. Step 806 shows that digital fingerprint management logic 1024multiplies the match score by 1.0 only to explicitly show that the matchscore remains unchanged.

Thus, according to logic flow diagram 308A (FIG. 8), a mismatch in theserial number of a hard disk drive suggests that digital fingerprint1140 (FIG. 11) and the reference digital fingerprint do not representone and the same device and the suggestion is reflected in the matchscore. Such suggestions accumulate as comparison logic for other digitalfingerprints can further reduce the match score.

Logic flow diagram 308B (FIG. 9) is an illustrative example ofcomparison logic for data regarding a personal characteristic of a userof device 102. In case step 902, digital fingerprint management logic1024 evaluates a change in the number of friends of the user per monthsince the generation of the reference digital fingerprint. Logic flowdiagram 308B illustrates comparison of personal characteristics that canchange over time but tend to change in a predictable way. Such is trueof the number of friends one has through a social networking site. Casestep 902 directs processing by digital fingerprint management logic 1024to one of steps 906, 910, 914, 918, and 920 according to the test valuesof test steps 904, 908, 912, and 916.

If digital fingerprint 1140 does not include a number of friends, e.g.,because the user of device 102 does not have a profile at the socialnetworking site, and the reference digital fingerprint does include anumber of friends, processing by digital fingerprint management logic1024 transfers through test step 904 to step 906 in which digitalfingerprint management logic 1024 reduces the match score by 30%, bymultiplication of the match score by 0.7. It is rare that people removeprofiles from social network sites. Accordingly, the absence of aprofile for the user of device 102 when the profile exists for thereference digital fingerprint is relatively strongly indicative of amismatch between digital fingerprint 1140 and the reference digitalfingerprint.

If digital fingerprint 1140 and the reference digital fingerprint show areduction in the number of friends over time, processing by digitalfingerprint management logic 1024 transfers through test step 908 tostep 910 in which digital fingerprint management logic 1024 reduces thematch score by 30%, by multiplication of the match score by 0.7. It israre that people remove friends in social network sites. Accordingly,the reduction in the number of friends is relatively strongly indicativeof a mismatch between digital fingerprint 1140 and the reference digitalfingerprint.

If digital fingerprint 1140 and the reference digital fingerprint showno change in the number of friends over time, processing by digitalfingerprint management logic 1024 transfers through test step 912 tostep 914 in which digital fingerprint management logic 1024 does notreduce the match score at all. The number of friends of a given user ata social networking site tends to be stable and, to the extent thenumber changes, the number tends only to increase. Accordingly,equivalence in the number of friends is relatively strongly indicativeof a match between digital fingerprint 1140 and the reference digitalfingerprint.

If digital fingerprint 1140 and the reference digital fingerprint showan increase in the number of friends over time of no more than three (3)friends per month, processing by digital fingerprint management logic1024 transfers through test step 916 to step 918 in which digitalfingerprint management logic 1024 reduces the match score by 5%, bymultiplication of the match score by 0.95. To the extent the number offriends of a user of a social networking site increases, the numbertends to increase relatively slowly over time once the profile isestablished. Accordingly, the relatively slow increase in the number offriends is relatively weakly indicative of a mismatch between digitalfingerprint 1140 and the reference digital fingerprint.

If digital fingerprint 1140 and the reference digital fingerprint showan increase in the number of friends over time of more than three (3)friends per month, processing by digital fingerprint management logic1024 transfers through test step 916 to step 920 in which digitalfingerprint management logic 1024 reduces the match score by 20%, bymultiplication of the match score by 0.8. To the extent the number offriends of a user of a social networking site increases, the numbertends to increase relatively slowly over time once the profile isestablished. Accordingly, the relatively rapid increase in the number offriends is moderately indicative of a mismatch between digitalfingerprint 1140 and the reference digital fingerprint.

Thus, according to logic flow diagram 308B (FIG. 9), a mismatch in thenumber of friends the user has at a social networking site can suggestthat digital fingerprint 1140 (FIG. 11) and the reference digitalfingerprint do not represent one and the same device and the suggestionis reflected in the match score. The degree to which such is suggesteddepends upon how changes in the number of friends follow an expectedpattern.

After all digital fingerprint elements 302 (FIG. 3) have been processedaccording to the loop of steps 706-708 (FIG. 7), the match scorereflects cumulative reductions of mismatches in the correspondingelements of digital fingerprint 1140 and the reference digitalfingerprint. In this illustrative embodiment, digital fingerprintmanagement logic 1024 determines that digital fingerprint 1140 and thereference digital fingerprint match only when the final matching scoreis at least a predetermined threshold. In addition, upon determinationthat the digital fingerprints match, digital fingerprint managementlogic 1024 supersedes the reference digital fingerprint with digitalfingerprint 1140 in this illustrative embodiment since digitalfingerprint 1140 is the more recent digital fingerprint of device 102.

Server computer 106 is shown in greater detail in FIG. 10. Server 106includes one or more microprocessors 1002 (collectively referred to asCPU 1002) that retrieve data and/or instructions from memory 1004 andexecute retrieved instructions in a conventional manner. Memory 1004 caninclude generally any computer-readable medium including, for example,persistent memory such as magnetic and/or optical disks, ROM, and PROMand volatile memory such as RAM.

CPU 1002 and memory 1004 are connected to one another through aconventional interconnect 1006, which is a bus in this illustrativeembodiment and which connects CPU 1002 and memory 1004 to network accesscircuitry 1012. Network access circuitry 1012 sends and receives datathrough computer networks such as wide area network 104 (FIG. 1).

A number of components of server 106 are stored in memory 1004. Inparticular, web server logic 1020 and web application logic 1022,including digital fingerprint management logic 1024, are all or part ofone or more computer processes executing within CPU 1002 from memory1004 in this illustrative embodiment but can also be implemented usingdigital logic circuitry.

Web server logic 1020 is a conventional web server. Web applicationlogic 1022 is content that defines one or more pages of a web site andis served by web server logic 1020 to client devices such as device 102.Digital fingerprint management logic 1024 is a part of web applicationlogic 1022 that causes client devices to generate digital fingerprintsand to compare digital fingerprints in the manner described above.

Device 102 is a personal computing device and is shown in greater detailin FIG. 11. Device 102 includes one or more microprocessors 1102(collectively referred to as CPU 1102) that retrieve data and/orinstructions from memory 1104 and execute retrieved instructions in aconventional manner. Memory 1104 can include generally anycomputer-readable medium including, for example, persistent memory suchas magnetic and/or optical disks, ROM, and PROM and volatile memory suchas RAM.

CPU 1102 and memory 1104 are connected to one another through aconventional interconnect 1106, which is a bus in this illustrativeembodiment and which connects CPU 1102 and memory 1104 to one or moreinput devices 1108, output devices 1110, and network access circuitry1112. Input devices 1108 can include, for example, a keyboard, a keypad,a touch-sensitive screen, a mouse, a microphone, and one or morecameras. Output devices 1110 can include, for example, a display —suchas a liquid crystal display (LCD) —and one or more loudspeakers. Networkaccess circuitry 1112 sends and receives data through computer networkssuch as wide area network 104 (FIG. 1).

A number of components of client device 102 are stored in memory 1104.In particular, web browser 1120 is all or part of one or more computerprocesses executing within CPU 1102 from memory 1104 in thisillustrative embodiment but can also be implemented using digital logiccircuitry. As used herein, “logic” refers to (i) logic implemented ascomputer instructions and/or data within one or more computer processesand/or (ii) logic implemented in electronic circuitry. Web browserplug-ins 1122A-C are each all or part of one or more computer processesthat cooperate with web browser 1120 to augment the behavior of webbrowser 1120. The manner in which behavior of a web browser is augmentedby web browser plug-ins is conventional and known and is not describedherein.

Browser personal information 1130 and digital fingerprint 1140 are datastored persistently in memory 1104. Browser personal information 1130can be organized as all or part of one or more databases.

As described above, web browser plug-in 1122C generates digitalfingerprint 1140 according to extraction logic 306 (FIG. 3) of each ofdigital fingerprint elements 302. In one embodiment, digital fingerprintmanagement logic 1024 (FIG. 10) sends identifier 304 (FIG. 3) andextraction logic 306 for all digital fingerprint elements 302 to webbrowser plug-in 1122C (FIG. 11) in step 204 (FIG. 2). In an alternativeembodiment, identifier 304 (FIG. 3) and extraction logic 306 for alldigital fingerprint elements 302 are included within web browser plug-in1122C (FIG. 11) and device 102 downloads web browser plug-in 1122C fromserver 106 with all the extraction logic already included.

The above description is illustrative only and is not limiting. Thepresent invention is defined solely by the claims which follow and theirfull range of equivalents. It is intended that the following appendedclaims be interpreted as including all such alterations, modifications,permutations, and substitute equivalents as fall within the true spiritand scope of the present invention.

1. A method for identifying a remotely located device, the methodcomprising: sending characteristic extraction logic to the remotelylocated device, wherein the characteristic extraction logic causes theremotely located device to retrieve characteristics of the device and atleast one characteristic of a user of the device from a publiclyavailable profile of the user of the device; receiving a digitalfingerprint of the device from the device, wherein the digitalfingerprint includes data representing the characteristics of the deviceand at least the characteristic of the user of the device; and comparingthe digital fingerprint of the device to a reference digital fingerprintto determine whether the digital fingerprint of the device and thereference digital fingerprint identify one and the same device.
 2. Themethod of claim 1 wherein the characteristic extraction logic causes theremotely located device to retrieve the characteristic of the user ofthe device by at least: identifying the publicly available profile ofthe user of the device from browser personal information stored in thedevice. 3-15. (canceled)
 16. The method of any one of claim 1 or 2,wherein the characteristic extraction logic causes the remotely locateddevice to retrieve the characteristic of the user of the device by atleast also: retrieving the publicly available profile through a computernetwork.
 17. The method of any one of claim 1 or 3, wherein comparingcomprises: retrieving comparison logic associated with each of thecharacteristics of the device and the characteristic of the user of thedevice; and executing the comparison logic to determine a degree ofsimilarity between the digital fingerprint of the device to a referencedigital fingerprint.
 18. The method of claim 4 wherein the comparisonlogic associated with the characteristic of the user of the deviceconsiders changes in the characteristic of the user of the device overtime relative to expected changes in the characteristic of the user ofthe device over time. 19-24. (canceled)